﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Windows;

namespace Seems.Model
{
	public class Project
	{
		public string Caption;
		public string Url;
		public Author[] Authors;
		public Version Version;
		public Package Root;
	}

	public class Package
	{
		public Package[] Packages;
		public Diagram[] Diagrams;
		public Element[] Elements;
	}


	public class Attribute
	{
		public string Name { get; set; }
	}

	public class Element
	{
		// issue 632
		public string Name { get; set; }
		public Attribute[] Attributes { get; set; }

		public Element()
		{
			Attributes = new Attribute[0];
		}
	}

	public class Diagram
	{
		private readonly ObservableCollection<DiagramElement> elements = new ObservableCollection<DiagramElement>();

		public ObservableCollection<DiagramElement> Elements
		{
			get { return elements; }
		}
	}

	public class DiagramElement
	{
		public Element Element;
		public Rect Bounds;
		public int Sequence;
	}

	public class Author
	{
		public string Name;
		public string email;
	}
}